package infnet.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Itens;
import model.Livro;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import beans.ItemForm;
import control.Dados;

public class AddCarrinhoAction  extends Action {
	
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		
		ItemForm itemForm = (ItemForm)form;
		int quantidade=0;
		int isbn=0;		
		
		boolean erro=false;
		
		if (itemForm.getIsbn()!=0)
			isbn=itemForm.getIsbn();
		else
			erro=true;
	
		
		if (itemForm.getQuantidade()!=-1)
			quantidade=itemForm.getQuantidade();
		else
			erro=true;
		
		if (erro){
			
			return mapping.findForward("falha");

		}else{
			
			Livro livro=null;
			Itens item=null;
						
			for (Livro l:Dados.ListaLivros)			
				if (isbn==l.getIsbn())
					livro=l;
			
			for (Itens i:Dados.carrinho)			
				if (i.getLivro().getIsbn()==livro.getIsbn())
					item=i;
					
			
			if (quantidade==0){//remover do carrinho
				
				
				livro.repoeEstoque(item.getQuantidade());
				
				Dados.carrinho.remove(item);
				
			}else{//add ao carrinho
				
				if (item==null){// produdo não esta na lista ainda
					item = new Itens(livro,quantidade);
					Dados.carrinho.add(item);
				}else{// produto ja esta na lista
					item.aumentaQuantidade(quantidade);
				}
									
				livro.retiraEstoque(quantidade);
			}
				
			itemForm.reset(mapping, request);			
			return mapping.findForward("sucesso");
		}
	}
}
